#include <iostream>
#include <stdio.h>
#include <string.h>
//#include <math.h>
using namespace std;

char map[5][5];
char cover[10][10];
char drop[10];
bool broken;

void makethecover()
{
    int i,j,k;
    i = 1; j = 1;    if (map[i][j] != 1) broken = true;
    i = 1; j = 2;    if (map[i][j] != 1 && map[i][j] != 2) broken = true;
    i = 1; j = 3;    if (map[i][j] != 2 && map[i][j] != 3) broken = true;
    i = 1; j = 4;    if (map[i][j] != 3 ) broken = true;

    i = 2; j = 1;    if (map[i][j] != 1 && map[i][j] != 4) broken = true;
    i = 2; j = 2;    if (map[i][j] != 1 && map[i][j] != 2 && map[i][j] != 4 && map[i][j] != 5) broken = true;
    i = 2; j = 3;    if (map[i][j] != 2 && map[i][j] != 3 && map[i][j] != 5 && map[i][j] != 6) broken = true;
    i = 2; j = 4;    if (map[i][j] != 3 && map[i][j] != 6) broken = true;    

    i = 3; j = 1;    if (map[i][j] != 4 && map[i][j] != 7) broken = true;
    i = 3; j = 2;    if (map[i][j] != 4 && map[i][j] != 5 && map[i][j] != 7 && map[i][j] != 8) broken = true;
    i = 3; j = 3;    if (map[i][j] != 5 && map[i][j] != 6 && map[i][j] != 8 && map[i][j] != 9) broken = true;
    i = 3; j = 4;    if (map[i][j] != 6 && map[i][j] != 9) broken = true;    

    i = 4; j = 1;    if (map[i][j] != 7) broken = true;
    i = 4; j = 2;    if (map[i][j] != 7 && map[i][j] != 8) broken = true;
    i = 4; j = 3;    if (map[i][j] != 8 && map[i][j] != 9) broken = true;
    i = 4; j = 4;    if (map[i][j] != 9 ) broken = true;
    if (broken) return; 
    
    i = 1; j = 2; 
    k = map[i][j];
    cover[k][1] = cover[k][2] =1;
    
    i = 1; j = 3; 
    k = map[i][j];
    cover[k][2] = cover[k][3] =1;
    
    i = 2; j = 1; 
    k = map[i][j];
    cover[k][1] = cover[k][4] =1;

    i = 2; j = 2; 
    k = map[i][j];
    cover[k][1] = cover[k][2] = cover[k][4] = cover[k][5] =1;  

    i = 2; j = 3; 
    k = map[i][j];
    cover[k][2] = cover[k][3] = cover[k][5] = cover[k][6] =1;    
    
    i = 2; j = 4; 
    k = map[i][j];
    cover[k][3] = cover[k][6] =1;
    
    i = 3; j = 1; 
    k = map[i][j];
    cover[k][4] = cover[k][7] =1;
    
    i = 3; j = 2; 
    k = map[i][j];
    cover[k][4] = cover[k][5] = cover[k][7] = cover[k][8] =1;    

    i = 3; j = 3; 
    k = map[i][j];
    cover[k][5] = cover[k][6] = cover[k][8] = cover[k][9] =1; 
    
    i = 3; j = 4; 
    k = map[i][j];
    cover[k][6] = cover[k][9] =1;    
    
    i = 4; j = 2; 
    k = map[i][j];
    cover[k][7] = cover[k][8] =1;  
    
    i = 4; j = 3; 
    k = map[i][j];
    cover[k][8] = cover[k][9] =1;  
    for (i=1; i<=9; ++i)
    	cover[i][i] = 0;
   	for (i=1; i<=9; ++i)
   	{
   	    k = 0;
   	    for (j=1; j<=9; ++j)
   	    	if (cover[j][i]) k++;
   	    cover[0][i] = k;
   	}    
   		
}    

int findone()
{
	int i;
 	for (i=1; i<=9; ++i)
  		if (cover[0][i]==0 && drop[i]==0)
    		return i;
    return -1;    
}   
 
int main()
{
    char ss[20];
    int i,j,k,p;
    while (1)
    {
        scanf("%s", ss);
        if (ss[0] == 'E') break;
        for (i=1;i<=4;++i)
        	for (j=1;j<=4;++j)
        		scanf("%d", &map[i][j]);
  		scanf("%s", ss);
  		
  		memset(cover, 0, sizeof(cover));
  		memset(drop, 0, sizeof(drop));
  		broken = false;
  		makethecover();
  		for (k=1; k<=9; ++k)
  		{
  		    p = findone();
  		    if (p==-1) 
  		    {
  		        broken = true;
  		        break;
  		    }    
            drop[p] = 1;
            for (i=1; i<=9; ++i)
            	if (cover[p][i]==1)
            	{
            	    cover[p][i] = 0;
            	    cover[0][i] --;
            	}  
  		}    
  		if (broken) printf("THESE WINDOWS ARE BROKEN\n");
  		else printf("THESE WINDOWS ARE CLEAN\n");
        
    }    

    
    return 0;
}    


